<?php

namespace app\common\model\Product;

use think\Model;
// 引入软删除的模型
use traits\model\SoftDelete;

class Product extends Model
{
    //在模型内部去引入软删除
    use SoftDelete;
    //
    protected $name = 'product';

    //指定一个自动设置的时间字段
    //开启自动写入
    protected $autoWriteTimestamp = true;

    //设置字段的名字
    protected $createTime = "createtime"; //插入的时候设置的字段名

    //禁止 写入的时间字段
    protected $updateTime = false;

    //设置软删除的字段更新的时间字段
    protected $deleteTime = 'deletetime';

    protected $append = [
        'createtime_text',
        'thumbs_text',
        'thumb_text',
    ];

    public function getCreateTimeTextAttr($value,$data){
        $createtime = isset($data['createtime']) ? trim($data['createtime']) : '';
        if(empty($createtime)){
            return '';
        }
        return date('Y-m-d H:i',$createtime);
    }

    public function getThumbTextAttr($value, $data)
    {
        //获取到cdn的地址
        $cdnurl = config('site.cdnurl') ? config('site.cdnurl') : '';
        $cdnurl = trim($cdnurl, '/');
        
        // 多张图字符串结构
        $thumbs = isset($data['thumbs']) ? $data['thumbs'] : '';

        if(empty($thumbs))
        {
            $thumbs = "/assets/img/shop.jpg";
        }else
        {
            $thumbs = explode(',', $thumbs);
            if(!empty($thumbs))
            {
                $pic = '';

                foreach($thumbs as $item)
                {
                    if(is_file(".".$item))
                    {
                        $pic = $item;
                        break;
                    }
                }

                if(empty($pic))
                {
                    $pic = "/assets/img/shop.jpg";
                }

                $thumbs = $pic;
            }
        }

        return $cdnurl.$thumbs;
    }

    public function getThumbsTextAttr($value, $data)
    {
        //获取到cdn的地址
        $cdnurl = config('site.cdnurl') ? config('site.cdnurl') : '';
        $cdnurl = trim($cdnurl, '/');
        
        // 多张图字符串结构
        $thumbs = isset($data['thumbs']) ? $data['thumbs'] : '';
        $arr = explode(',', $thumbs);

        //返回结果
        $list = [];

        foreach($arr as $item)
        {
            if(is_file(".".$item))
            {
                $list[] = $cdnurl.$item;
            }
        }

        if(empty($list))
        {
            $list[] = $cdnurl."/assets/img/shop.jpg";
        }

        return $list;
    }


    // 定义一个关联查询的方法、、查询分类
    public function type(){
        // product.typeid = type.id
        // $this->belongsTo(关联外键模型，外键字段，关键表的主键,废弃的参数，链表方式)
        // setEagerlyType(0) 采用join的方式来查询
        return $this->belongsTo('app\common\model\Product\Type','typeid','id',[],'LEFT')->setEagerlyType(0);
    }

    public function unit(){
        // product.unitid = unit.id
        // $this->belongsTo(关联外键模型，外键字段，关键表的主键,废弃的参数，链表方式)
        // setEagerlyType(0) 采用join的方式来查询
        return $this->belongsTo('app\common\model\Product\Unit','unitid','id',[],'LEFT')->setEagerlyType(0);
    }
}
